package dto

import (
	"equantum/model"
)

type GateDto struct {
	ID     uint      `json:"id"`     // gid
	Name   string    `json:"name"`   // 用户自己定义的gate不能重复
	Type   int       `json:"type"`   // gate类型
	Input  int       `json:"input"`  // 输入量子比特个数
	Param  int       `json:"param"`  // 参数个数
	Params []float64 `json:"params"` // 为参数值留空
	// Code   string // 如果是用户自定义gate或oracle，则保存json/代码
	// UserID uint   `json:"name"` // 用户自定义的gate
}

func ToGateArrDto(gateArr []model.Gate) []GateDto {
	var gateDtoArr []GateDto

	for _, gate := range gateArr {
		gateDtoArr = append(gateDtoArr, GateDto{
			ID:     gate.ID,
			Name:   gate.Name,
			Type:   gate.Type,
			Input:  gate.Input,
			Param:  gate.Param,
			Params: make([]float64, gate.Param),
		})
	}

	return gateDtoArr
}
